﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System.Data;
using System.Data.SqlClient;

using Padelcenter.Common;

namespace Padelcenter.DataAccess
{
    #region " Marca Select " 
    public class Marca_Select : DataAccessBase
    {
        public Marca_Select()
        {
            StoredProcedureName = StoredProcedure.Name.Marca_SELECT.ToString();
        }

        public DataSet Get()
        {
            DataSet ds;

            Marca_Select_Prm marca_Select_Prm = new Marca_Select_Prm(this.Marca);
            DataBaseHelper dbhelper = new DataBaseHelper(StoredProcedureName);
            ds = dbhelper.Run(base.ConnectionString, marca_Select_Prm.Parameters);

            return ds;
        }

        private Marca _marca;

        public Marca Marca
        {
            get { return _marca; }
            set { _marca = value; }
        }

        
    }

    public class Marca_Select_Prm
    {
        public Marca_Select_Prm(Marca marca)
        {
            this.Marca = marca;
            this.BuildParams();
        }

        private void BuildParams()
        {
            SqlParameter[] parameters = 
            {
                new SqlParameter( "@idMarca"            , this.Marca.IdMarca ),
                new SqlParameter( "@ConFiltroActivo"    , this.Marca.ConFiltroActivo),
                new SqlParameter( "@Activo"             , this.Marca.Activo)
            };

            this.Parameters = parameters;
        }

        private Marca _marca;

        public Marca Marca
        {
            get { return _marca; }
            set { _marca = value; }
        }
        private SqlParameter[] _parameters;

        public SqlParameter[] Parameters
        {
            get { return _parameters; }
            set { _parameters = value; }
        }

    }

    public class MarcaTipoProducto_Select : DataAccessBase
    { 
        public MarcaTipoProducto_Select()
        {
            base.StoredProcedureName = StoredProcedure.Name.MarcaTipoProducto_SELECT.ToString();
        }

        public DataSet Get()
        {
            DataSet ds;

            MarcaTipoProducto_Select_Prm marcaTipoProducto_Select_Prm = new MarcaTipoProducto_Select_Prm(this.MarcaTipoProducto);
            DataBaseHelper dbhelper = new DataBaseHelper(StoredProcedureName);
            ds = dbhelper.Run(base.ConnectionString, marcaTipoProducto_Select_Prm.Parameters);

            return ds;
        }

        private MarcaTipoProducto _marcaTipoProducto;

        public MarcaTipoProducto MarcaTipoProducto
        {
            get { return _marcaTipoProducto; }
            set { _marcaTipoProducto = value; }
        }
    }

    public class MarcaTipoProducto_Select_Prm
    {
        public MarcaTipoProducto_Select_Prm(MarcaTipoProducto marcaTipoProducto)
        {
            this.MarcaTipoProducto = marcaTipoProducto;
            this.BuildParams();
        }

        private void BuildParams()
        {
            SqlParameter[] parameters = 
            {
                new SqlParameter( "@idMarca"            , this.MarcaTipoProducto.Marca.IdMarca ),
                new SqlParameter( "@idTipoProducto"     , this.MarcaTipoProducto.TipoProducto.IdTipoProducto)
            };

            this.Parameters = parameters;
        }

        private MarcaTipoProducto _marcaTipoProducto;

        public MarcaTipoProducto MarcaTipoProducto
        {
            get { return _marcaTipoProducto; }
            set { _marcaTipoProducto = value; }
        }

        private SqlParameter[] _parameters;

        public SqlParameter[] Parameters
        {
            get { return _parameters; }
            set { _parameters = value; }
        }
    }

    #endregion

    #region " Marca Insert "
    public class Marca_Insert : DataAccessBase
    {
        public Marca_Insert()
        {
            StoredProcedureName = StoredProcedure.Name.Marca_INSERT.ToString();
        }

        public DataSet Get()
        {
            DataSet ds;

            Marca_Insert_Prm marca_Insert_Prm = new Marca_Insert_Prm(this.Marca);
            DataBaseHelper dbhelper = new DataBaseHelper(StoredProcedureName);
            ds = dbhelper.Run(base.ConnectionString, marca_Insert_Prm.Parameters);

            return ds;
        }

        private Marca _marca;

        public Marca Marca
        {
            get { return _marca; }
            set { _marca = value; }
        }


    }

    public class Marca_Insert_Prm
    {
        public Marca_Insert_Prm(Marca marca)
        {
            this.Marca = marca;
            this.BuildParams();
        }

        private void BuildParams()
        {
            SqlParameter[] parameters = 
            {
                new SqlParameter( "@Descripcion"        , this.Marca.Descripcion ),
                new SqlParameter( "@Alias"              , this.Marca.Alias),
                new SqlParameter( "@idPais"             , this.Marca.Pais.IdPais),
                new SqlParameter( "@Orden"              , this.Marca.Orden),
                new SqlParameter( "@Activo"             , this.Marca.Activo)
            };

            this.Parameters = parameters;
        }

        private Marca _marca;

        public Marca Marca
        {
            get { return _marca; }
            set { _marca = value; }
        }
        private SqlParameter[] _parameters;

        public SqlParameter[] Parameters
        {
            get { return _parameters; }
            set { _parameters = value; }
        }

    }

    public class MarcaTipoProducto_Insert : DataAccessBase
    {
        public MarcaTipoProducto_Insert()
        {
            StoredProcedureName = StoredProcedure.Name.MarcaTipoProducto_INSERT.ToString();
        }

        public DataSet Get()
        {
            DataSet ds;

            MarcaTipoProducto_Insert_Prm marcaTipoProducto_Insert_Prm = new MarcaTipoProducto_Insert_Prm(this.MarcaTipoProducto);
            DataBaseHelper dbhelper = new DataBaseHelper(StoredProcedureName);
            ds = dbhelper.Run(base.ConnectionString, marcaTipoProducto_Insert_Prm.Parameters);

            return ds;
        }

        private MarcaTipoProducto _marcaTipoProducto;

        public MarcaTipoProducto MarcaTipoProducto
        {
            get { return _marcaTipoProducto; }
            set { _marcaTipoProducto = value; }
        }
    }

    public class MarcaTipoProducto_Insert_Prm
    {
        public MarcaTipoProducto_Insert_Prm(MarcaTipoProducto marcaTipoProducto)
        {
            this.MarcaTipoProducto = marcaTipoProducto;
            this.BuildParams();
        }

        private void BuildParams()
        {
            SqlParameter[] parameters = 
            {
                new SqlParameter( "@idMarca"        , this.MarcaTipoProducto.Marca.IdMarca),
                new SqlParameter( "@idTipoProducto" , this.MarcaTipoProducto.TipoProducto.IdTipoProducto)
            };

            this.Parameters = parameters;
        }

        private MarcaTipoProducto _marcaTipoProducto;

        public MarcaTipoProducto MarcaTipoProducto
        {
            get { return _marcaTipoProducto; }
            set { _marcaTipoProducto = value; }
        }

        private SqlParameter[] _parameters;

        public SqlParameter[] Parameters
        {
            get { return _parameters; }
            set { _parameters = value; }
        }

    }
    #endregion

    #region " Marca Update "
    public class Marca_Update : DataAccessBase
    {
        public Marca_Update()
        {
            StoredProcedureName = StoredProcedure.Name.Marca_UPDATE.ToString();
        }

        public DataSet Get()
        {
            DataSet ds;

            Marca_Update_Prm marca_Update_Prm = new Marca_Update_Prm(this.Marca);
            DataBaseHelper dbhelper = new DataBaseHelper(StoredProcedureName);
            ds = dbhelper.Run(base.ConnectionString, marca_Update_Prm.Parameters);

            return ds;
        }

        private Marca _marca;

        public Marca Marca
        {
            get { return _marca; }
            set { _marca = value; }
        }


    }

    public class Marca_Update_Prm
    {
        public Marca_Update_Prm(Marca marca)
        {
            this.Marca = marca;
            this.BuildParams();
        }

        private void BuildParams()
        {
            SqlParameter[] parameters = 
            {
                new SqlParameter( "@idMarca"            , this.Marca.IdMarca),
                new SqlParameter( "@Descripcion"        , this.Marca.Descripcion ),
                new SqlParameter( "@Alias"              , this.Marca.Alias),
                new SqlParameter( "@idPais"             , this.Marca.Pais.IdPais),
                new SqlParameter( "@Orden"              , this.Marca.Orden),
                new SqlParameter( "@Activo"             , this.Marca.Activo)
            };

            this.Parameters = parameters;
        }

        private Marca _marca;

        public Marca Marca
        {
            get { return _marca; }
            set { _marca = value; }
        }
        private SqlParameter[] _parameters;

        public SqlParameter[] Parameters
        {
            get { return _parameters; }
            set { _parameters = value; }
        }

    }
    #endregion
}
